Reference is made to U.S. Pat. No. 6,337,743, entitled A METHOD AND SYSTEM OF PRINT STREAM ADDRESS EXTRACTION, assigned to the assignee of this application and filed on Jul. 20, 1998.
Reference is made to U.S. Pat. No. 6,342,899, entitled A METHOD AND SYSTEM OF DISPLAYING DATABASE CONTENTS IN ENVELOPE DATA FIELDS, assigned to the assignee of this application and filed on Jul. 20, 1995.
Reference is made to U.S. Pat. No. 6,384,931, entitled A METHOD AND SYSTEM FOR CAPTURING DESTINATION ADDRESSES FROM LABEL DATA, assigned to the assignee of this application and filed on Jul. 20, 1998.
Graphics and design programs which allow a system user to create representations that can in turn be modified before printing are especially useful in creating finished documents. One such program is the Envelope Designer(trademark) Plus graphics program from Pitney Bowes Inc. of Stamford, Conn. This program allows the user to create envelope and label designs that can be tailored to specific needs.
An envelope typically has two major design elements; these are the destination address block and the return address block. To these major elements, there can be added: a Postnet barcode; one or more message lines; and, one or more graphic images. The Envelope Designer(trademark) Plus graphics program allows the system user to create the address, return address, attention line and message blocks, assign text attributes and position the blocks within a selected layout. The system user can also specify whether or not to include an optional Postnet(trademark) bar code (Postnet is a trademark of the United States Postal Service), and its corresponding location on the envelope or label. The graphics program also allows the system operator to place a non-printing overlay on the envelope to ensure that the design and placement conforms to postal guidelines. The program can be further linked with the SmartMailer(trademark) program from Pitney Bowes Inc. to attach address fields to the print field of the envelope or label. The resulting layout brings efficiency and cost benefit to the production of an envelope face; efficiency from the use of existing data and graphics files, and cost savings from the possible postal automation discounts that attach to certain categories of batch mailing and correctly zip-coded business mail.
The ability of an envelope/label designer program to be flexible, while giving its users the ability to link with databases that provide address files, is of great practical as well as commercial importance. The prior art has been limited in its ability to be flexible enough to be adapted to envelope/label design that can actually link with databases that are capable of being introduced to address hygiene routines.
As the capabilities of data processing systems has grown, so too have the requirements that are tasked to these systems. Greater speed in these systems has given rise to more detail-oriented applications, greater memory capability has made memory intensive applications more attractive, and detailed applications have lead to more wide-spread use of previously inaccessible data processing abilities. With the spiraling growth in data processing ability, there has grown a need for more efficient ways of programming that promote speed as well as flexibility. Flexibility, in particular, allows applications that have been designed in varied programming languages, or operating on different platforms to be able to communicate without extensive system or file modification.
One such means of promoting flexibility within a data processing system is the use of xe2x80x9cobject-orientedxe2x80x9d design (OOD). Object oriented programmning languages are useful in removing some of the restrictions that have hampered application design due to the inflexibility of traditional programming languages.
OOD utilizes a basic element or construct known as the xe2x80x9cobject,xe2x80x9d which combines both a data structure and an intended behavior characteristic within the single element. Objects are bundles of data and the procedures which best identify the use of that data. Objects can be specific or conceptual and are often used to represent models of real-world object groupings; this has the effect of helping software applications become an organized collection of discrete objects in which data is held or moved based on the intended behavior of an object which is inherently unique. Each object knows how to perform some activity.
The objects interact and communicate with each other via messages. A message is initiated by one object for the purpose of getting a second message to perform an act such as performing the steps of a method. Information parameters may be passed along with the message so that the receiving object will have guidelines for performing its action.
Software objects share two characteristics; they all have xe2x80x9cstatexe2x80x9d and xe2x80x9cbehavior.xe2x80x9d State is the condition of the object expressed in variables (what it knows), while behavior is implemented by performance of a method (what it can do). Packaging the object""s variables, together with its methods, is referred to as xe2x80x9cencapsulation.xe2x80x9d Encapsulation is used to hide unimportant implementation details from other objects; and, this in turn provides two primary benefits to software developers. These benefits are: (1) modularity and (2) information hiding.
Modularity of objects means that the source code for an object can be written and maintained independently of the source code for other objects, thus allowing a certain autonomy of purpose for each individual object. Information hiding, on the other hand, is the ability to keep private certain of its data and methods without effecting the other objects which may depend upon it. Common dependencies among objects can maintain communication by utilizing a public interface for information sharing.
Objects interact and communicate with each other through the use of messages. Each message has three components that are necessary for a receiving object to be able to perform a desired method; these are: (1) the object to whom the message is addressed; (2) the name of the method that is to be performed; and (3) the method required parameters. Because these three components alone represent what is required for methods to be activated, it is not required that objects be located within the same process in order for communication to take place. Message use, therefore, is the supporting means for object interaction. But to be of value to a particular application, objects must be able to be referenced.
Referencing is accomplished through indexing, addressing, or through value assignment which can be placed in a table for use as required. Objects can also be arranged by classification. Classification is based on groupings of objects based upon properties or characteristics important to an application or requirement. Each class describes a potentially infinite set of objects that comprise that class. Object interaction can be further optimized by the use of class distinction. Classes are organizational blueprints that define the variables and methods which are common to all objects of a particular group. Values for each of the variables are assigned and allocated to memory when an instance from a class is created. Additionally, methods can only be performed when a class instance has been allocated to memory. Thus, the most distinct advantage of class use is the ability to reuse the classes and thus further create more objects. Classes, in turn, can be subdivided into subclasses which inherit the state of the underlying class. The further advantage being the ability to create specialized implementations of methods.
The constant growth and expansion of software systems and the hardware platforms that support them has led to the emergence of object oriented programming which reduces time and memory capacity requirements by taking advantage of certain redundancies by treating them as unique software objects.
The advantages of objects lie in the ability of objects to link performance characteristics. The linking of objects to applications is done through object linking and embedding techniques known by the acronym xe2x80x9cOLE2.xe2x80x9d This greatly optimizes the using system""s ability to find data and use it effectively. Systems that utilize formats whose structure and requirements repeat, would benefit greatly from object oriented techniques. And, if the system were to be able to define its principle data requirements in the form of objects, it would inherit the advantages of the object oriented environment while maintaining the inherent system advantages.
OOD is known in the software arts and specific discussion of application design based upon OOD is not required for a thorough understanding of the applicant""s claimed invention. It is, however, one object of the present claimed invention to disclose a method and system for utilizing object oriented design to effectively and efficiently link applications within an envelope/label design system.
The mailing systems art can clearly benefit from a method that captures the data field of the postal indicia. Therefore, it is an object of the present invention to provide for a means of determining postal service and mailpiece revenue requirements; create objects derived therefrom; and, then utilize those objects to optimize mail piece production through an indicia control. And, it is a further object of the present disclosure to provide for a program that can link with object oriented design functionality to create an object that provides for an indicia control for proper preparation and accounting of postal payments for each envelope that receives a postal indicia imprinted thereupon.
The invention is a method and system for printing a postage meter indicia from a data processing system. The printing of the indicia is under control of an indicia control in an object linking and embedding (OLE) environment.
The invention method comprises a number of steps that begin with instantiating an indicia control in the design application that will utilize the object control for indicia printing. The indicia control is attached to an application window for use by the application. Once established, the control will be passed a set of postage meter data from a postage meter interoperatively linked to the data processing system. Use of the control is under the further control of a system operator whose interface to the application is from a display responsive to the application.
The interface is enhanced by displaying an envelope or a label representation on the monitor screen to the system operator, wherein the envelope display comprises design fields and wherein one of the design fields is a representation of the postage indicia. The postage indicia additionally comprises postage meter data such as available funds, a transaction value, and a postage meter identification. Additional parameters which may be set by transferring data from linked routines include: a date; a zip code; and a postage value.
The establishment of a print field, first for printing of the envelope fields and then for printing of the indicia, is an important step. The envelope design fields comprise: a return address field; a destination address field; and, optionally, a Postnet barcode and/or an advertising slogan.
Prior to printing, the displayed postage indicia is positionally responsive to instructions from the application for re-sizing the displayed envelope. The method then continues with the printing of the postage indicia to the application file and subsequently to a printable media such as an envelope. Printing to the application, as opposed to an indicia file, causes decrementing of the funds available to the data processing system by an amount equal to the postage value in the printed indicia. The printing of the indicia to the application acts as a blocking function against the printing of multiple indicias without the decrementing of funds. During printing, the envelope design fields are printed exclusive of the postage indicia field and then the postage indicia field is printed subsequent to the envelope design fields.
An important element of the subject method for utilizing the indicia control is the establishment of the indicia control as an object in an object oriented environment. The object further comprises: a programming interface; a human interface; and, a set of value instructions. The object additionally comprises action methods, the action methods further comprising printing instructions for instructing the data processing means to print said indicia. The set of value instructions further comprises: a set of postal value linking instructions; a set of display instructions; and, a set of default instructions.
The creation of the indicia printing object in an object oriented development environment of a data processing system comprises a number of steps. The steps begin with the establishment of an object creation function within the data processing system; then, registering a class within the object creation function and instantiating the class. The instantiation establishes a programming interface to the indicia printing object. The properties of the indicia printing object are then established by placing a set of object methods, printing functionality, data linking functionality, and a set of postage value tables within the indicia printing object by utilizing the programming interface.
The set of object methods comprises action instructions; the action instructions further comprising display instructions for instructing the data processing system to display data on the display means; storage instructions for instructing said data processing system to store data; and, printing instructions for instructing said data processing means to print data on said output means.
The postage value tables further comprise: a plurality of postal value data; rules for use of postal value data; error messages; and, suggestions for alternate paths of movement within said data processing system. Additionally, a human interface is established for allowing data to be displayed to a system operator under direction from the object methods; and, then placing the human interface within the indicia printing object by utilizing the programming interface.